博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
步步为营-70-asp.net简单练习(文件的上传和下载)
阅读量:5140 次
发布时间:2019-06-13

本文共 4656 字,大约阅读时间需要 15 分钟。

大文件的上传一般通过FTP协议,而一般小的文件可以通过http协议来完成

1 通过asp.net 完成图片的上传

1.1 创建html页面

  注意:1 method="post" ;2 enctype="multipart/form-data"; 3 <input type="file" />  

FileUpload.html

1.2 创建一般处理程序.ashx

  注意:1 创建文件保存路径

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileUpload 的摘要说明    ///     public class FileUpload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";            //01 获取文件            HttpPostedFile pf = context.Request.Files["imgUpLoad"];            //02 创建文件保存路径            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload/"+pf.FileName);            //03 保存文件            pf.SaveAs(savePath);            //04 显示上传的文件            context.Response.Write(" ");        }        public bool IsReusable        {            get            {                return false;            }        }    }}
FileUpload.ashx

2 上传文件格式的验证,假设规定只能上传,gif的图片

  我们可以在HTML通过jQuery来进行验证,也可以在.ashx中进行验证

2.1 修改ashx文件

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileUpload 的摘要说明    ///     public class FileUpload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";            //01 获取文件            HttpPostedFile pf = context.Request.Files["imgUpLoad"];            //01-01 获取文件后缀名            string extName = pf.FileName.Substring(pf.FileName.LastIndexOf('.'));            if (extName != ".gif" || extName != ".Gif")            {                context.Response.Write("请上传.gif图片");                return;            }            //02 创建文件保存路径            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload/"+pf.FileName);            //03 保存文件            pf.SaveAs(savePath);            //04 显示上传的文件            context.Response.Write(" ");        }        public bool IsReusable        {            get            {                return false;            }        }    }}
ashx

2.2 引入jQuery,修改HTML页面

html

3 如果文件只放在Upload文件夹下,随着时间的增长,文件势必会越来越多不利于寻找,可以根据日期建立相应文件夹

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileUpload 的摘要说明    ///     public class FileUpload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";            //01 获取文件            HttpPostedFile pf = context.Request.Files["imgUpLoad"];            //01-01 获取文件后缀名            string extName = pf.FileName.Substring(pf.FileName.LastIndexOf('.'));            if (extName != ".gif" && extName != ".GIF")            {                context.Response.Write("请上传.gif图片");                return;            }            //02 创建文件保存路径            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload\\");            //02-01 根据日期创建文件夹            DateTime dt = DateTime.Now;            savePath += dt.Year + "\\" + dt.Month + "\\" + dt.Day ;            if (!Directory.Exists(savePath))            {                //创建文件夹                Directory.CreateDirectory(savePath);            }            //02-02文 件名为当前时间                        savePath += "\\"+ dt.ToString().Replace(':','-')+".gif";            //03 保存文件            pf.SaveAs(savePath);            //04 显示上传的文件             context.Response.Write(" ");        }        public bool IsReusable        {            get            {                return false;            }        }    }}
ashx

4 文件下载

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileDownload 的摘要说明    ///     public class FileDownload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            string f = context.Request["f"];            context.Response.ContentType = "application/octet-stream";            context.Response.AddHeader("Content-Disposition","attachment;filename=\""+f+"\";");            context.Response.WriteFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,f));        }        public bool IsReusable        {            get            {                return false;            }        }    }}
ashx

转载于:https://www.cnblogs.com/YK2012/p/7009993.html

你可能感兴趣的文章
文件的暂存(git add)
查看>>
时间即效率,从高效办公到中华上下五千年
查看>>
新开始
查看>>
ccp4 functions
查看>>
[SQL Server] Excel文件导入SQL Server数据库表
查看>>
Windows10实用技巧-固定快捷方式到磁贴菜单方式
查看>>
mime.go
查看>>
微信公众平台接口配置问题
查看>>
SQL查询记录添加序号(HANA)
查看>>
正则表达式
查看>>
canvas svg webgl threejs d3js 的区别
查看>>
现代编译原理--第三章(抽象语法树以及源码)
查看>>
pygame 笔记-2 模仿超级玛丽的弹跳
查看>>
条款04:确定对象在使用前已经被初始化
查看>>
web数据采集核心技术分享系列(一)做一个强大的web数据采集系统,你需要什么?...
查看>>
spring boot 遇到 supported setting property http://xml.org/sax/properties/lexical-handler
查看>>
java inputstream to string stack overflow
查看>>
Java使用RabbitMQ之消息确认(confirm模板)
查看>>
蓝牙(Profile)构成
查看>>
PAT (Advanced Level) Practise:1002. A+B for Polynomials
查看>>